The present invention relates to network management in general and in particular to application program management on a computer network.
Traditional mainframe computer configurations provided for user interface to the computer through computer terminals which were directly connected by wires to ports of the mainframe computer. As computing technology has evolved, processing power has typically evolved from a central processing center with a number of relatively low-processing power terminals to a distributed environment of networked processors. Examples of this shift in processing include local or wide area computer networks which interconnect individual work stations where each workstation has substantial independent processing capabilities. This shift may be further seen in the popularity of the Internet which interconnects many processors and networks of processors through devices such as, for example, routers. This type of network environment is often referred to as a client-server environment with client stations coupled to and supported by a server station.
In the modern distributed processing computer environment, control over software, such as application programs, is more difficult than where a mainframe operated by an administrator is used, particularly for large organizations with numerous client stations and servers distributed widely geographically and utilized by a large number of users. Furthermore, individual users may move from location to location and need to access the network from different client stations at different times. The networked environment increases the challenges for a network administrator in maintaining proper licenses for existing software and deploying new or updated applications programs across the network.
One approach to reducing software distribution and control problems is to use an application server in which the application programs arc installed and maintained on a centralized server which supports a plurality of client stations (sometimes referred to as a client/server application as contrasted to a desktop application). In addition, the Systems Management Server (SMS) program from Microsoft Corporation provides an ability to transmit an application program from a server to a number of clients. The SMS system typically allows installation of programs and associated icons at client stations for SMS-enabled applications. A customized install generally must be created by a system administrator for each different version to be installed. Furthermore, once installed at a client, a user must typically use that specific client station. The application generally cannot be automatically deleted from the client station""s desktop or automatically upgraded the next time the user starts the application. Similarly, the Tivoli Management Environment (TME) 10(trademark) system from Tivoli Systems, Inc. provides a software distribution feature which may be used to transmit a file package to client and server stations on a network from a central Tivoli(trademark) server.
A further complication in network systems is that, typically, these systems include combinations of network applications and native applications as well as combinations of different connection types and hardware devices. As used herein xe2x80x9cnative applicationsxe2x80x9d refers to applications which are installed locally on a workstation such that characteristics associated with the native application are stored on the workstation. The combinations of network connections, differing hardware, native applications and network applications makes portability of preferences or operating environment characteristics which provide consistency from workstation to workstation difficult. Furthermore, differences in hardware or connections may create inefficiencies as users move from workstation to workstation. For example, a user may, in a first session, access the network utilizing a high speed connection and a workstation with a high resolution color monitor to execute an application and then, in a later session, access the network to execute the same application from a mobile computer with a monochrome display and a low speed modem connection to the network. Thus, session content, such as color display data or preferences associated with the application, which may have been appropriate for the first session may be inappropriate or inefficient in a later session.
Efforts to address mobility of users in a network have included efforts to provide preference mobility such as, for example, Novell""s Z.E.N.works(trademark), Microsoft""s xe2x80x9cZero Administrationxe2x80x9d initiative for Windows(copyright) and International Business Machines Corporation""s (IBM""s) Workspace On Demand(trademark). However, these solutions each typically require pre-installation of software at the workstation to support their services. For example, Novell""s Z.E.N. and IBM""s Workspace On Demand utilize a designer-supplied support layer in the operating system to enable their services. In addition to modifying the workstations operating system at startup to setup tasks to customize the user""s environment, the Microsoft Zero Administration solution is typically limited to a homogeneous (Windows(copyright) only) environment where the workstation and the server are utilizing the same operating system.
Another approach to centralized management is the traditional mainframe model, such as with the IBM 3270 system, or an X Windows environment. However, in each of these approaches, the client device is treated as a dumb terminal with execution of the applications occurring at the server rather than the client. Accordingly, the communication between the server and the client is typically presenting characters for a display screen of the client and/or receiving key strokes from the client. Windows Zero Administration, as described above, is client rather than user oriented and installs applications on client stations which does not fully support roaming by users. The JAVA(trademark) environment utilized on the Internet for web applications provides an ability for hardware independent application development but fails to provide an integrated framework for presenting multiple independent applications to a user. While various web applications, such as the Netscape Mission Control desktop, do allow personalizing of a specific application display by a user, this capability is generally not managed across applications for a user. Furthermore, it typically associates personalized screen information with an Internet address (and sometimes a xe2x80x9ccookiexe2x80x9d installed at the client) which is associated with a client device rather than a user, therefore limiting its ability to support roaming by users.
Each of these xe2x80x9cmobilityxe2x80x9d systems typically do not address the full range of complications which may arise in a heterogeneous network utilizing differing devices and connections. The system typically will not present application choices associated with the user and for which the user is authorized but instead present information associated with the particular client workstation. Users would typically have to manually define session characteristics at each differing workstation they used in the network or maintain local characteristic definitions which may be inappropriate for particular applications a user is executing and may substantially reduced the administrative convenience of a centrally controlled network. Thus, these various approaches fail to provide a seamless integration of application access and session characteristics across heterogeneous networks. Such solutions may, at most, reduce network administration only after initial installation on each workstation. In addition, control over access by users is difficult to accomplish in a mobile environment.
Furthermore, these various approaches have, at most, only limited capabilities to provide a uniform framework for deployment of new or updated application programs from different software designers. To the extent software distribution capabilities from a central location are provided, such as with the TME 10(trademark) system, they typically require various steps in the installation process to occur at different locations rather than allowing the entire process to be controlled from a single point for an entire managed network environment.
Accordingly, it is an object of the present invention to provide methods, systems and computer program products for centralized management of application programs on a computer network.
It is a further object of the present invention to provide such methods, systems and computer program products that are user based across various hardware interface devices.
It is another object of the present invention to provide such methods, systems and computer program products that provide for software deployment from a central administrative server location across a plurality of client stations.
It is a further object of the present invention to provide such methods, systems and computer program products that can accommodate various types of hardware operating under different operating systems across client stations.
These and other objects are provided, according to the present invention, by providing methods, systems and computer program products for management of application programs on a network including a server supporting client stations. The server provides applications on-demand to a user logging in to a client supported by the server. Mobility is provided to the user and hardware portability is provided by establishing a user desktop interface responsive to a login request which presents to the user a desktop screen through a web browser interface. The desktop accesses and downloads selected application programs from the server responsive to a request from the user, such as the selection of an icon associated with the application program which is displayed on the user desktop screen at the client. The application program is then provided from the server and executed at the client. The application program may further be customized to conform to the user""s preferences and may also provide for license use management by determining license availability before initiating execution of the application program. Accordingly, applications are provided on-demand to users independent of the device used to access the server.
Centralized control of software distribution is also provided for a network management server managed computer network such as a Tivoli(trademark) environment. Application programs are distributed as file packages (packets) to on-demand servers. A profile manager import call is included in the distributed file packet along with an import text file containing the data required to properly install and register the application program on the on-demand server and make it available to authorized users. Settable on-demand server identifier fields are included to allow a plurality of on-demand servers to receive a common file packet and properly install and register the program for use locally.
In one embodiment of the present invention, a method for management of application programs on a network including a server and a client is provided. A plurality of application programs are installed at the server. The plurality of application programs may be installed on a network drive accessible to the server. A login request initiating a session is received from a user through an application executing at the client. A user desktop interface is then established at the client associated with the user responsive to the login request from the user. The desktop interface includes a plurality of display regions associated with a set of the plurality of application programs installed at the server for which the user is authorized. The server receives a selection of one of the plurality of application programs from the user desktop interface and provides an instance of the selected one of the plurality of application programs to the client for execution responsive to the selection.
In a further embodiment, application management information for the plurality of applications is maintained at the server and a plurality of display regions associated with a set of the plurality of application programs for which the user is authorized is included responsive to the application management information. In a further embodiment of the present invention, application launcher programs associated with each of the set of the plurality of application programs for which the user is authorized are distributed to the client and selections of programs are received from one of the application launcher programs which is associated with the selected one of the plurality of application programs. The application launcher programs may be provided as JAVA(trademark) applets and the user desktop interface may be provided as a web browser The application management information may include configurable user preference information for the plurality of application programs and a set of the configurable user preference information associated with the user and the selected one of the plurality of application programs may be provided to the client for use in executing the instance of the application program. The set of the configurable user preference information may include both user preferences configurable by the user and user preferences not configurable by the user which are configurable by an administrator. The user preference information may be updated responsive to updates from the user and the administrator respectively.
In another embodiment of the present invention, the user desktop interface is configured at the server responsive to an identifier of the user associated with the login request so as to provide a configured user desktop interface. The configured user desktop interface is then provided to the client for display. The user desktop may be configured not to include display regions associated with any of the plurality of application programs installed at the server for which the user is not authorized.
In another aspect of the present invention, a license availability is determined for the selected one of the plurality of application programs for the user. License availability for the user desktop application itself may also be determined. An unavailability indication is provided to the client responsive to the selection if the license availability indicates that a license is not available for the user. The license availability may be determined by the one of the application launcher programs associated with the selected one of the plurality of application programs which may obtain the license availability from a license management server. The license management server may run on the same machine as the on demand application server.
In a further aspect of the present invention, event logging information is received at the server from the instance of the selected one of the plurality of application programs. The server provides the received event logging information to a network management server associated with the server. In addition, event logging information may be provided to the user desktop application.
In yet another aspect of the present invention, methods are provided for distribution of application programs to a target station on a network from a centralized network management server coupled to the network. The application program to be distributed is provided to the systems (network) management server and a source directory and a target directory for distribution of the application program are specified. A file packet associated with the application program is prepared including a segment configured to initiate registration operations for the application program at the target station. The file packet is then distributed to the target station or stations. In one embodiment, the network management server is a Tivoli(trademark) server. The segment configured to initiate registration operations may include an import data file and a call to an import program executing on the target station.
In one embodiment of the software distribution aspect of the present invention, the application program is provided as a JAVA(trademark) applet and is registered based on a Universal Resource Locator (URL) address accessible to a browser application. The segment configured to initiate registration operations includes a variable field into which the target station inserts its identification during registration operations. The file packet may be distributed to a plurality of target stations each having an identification which may be inserted into the variable field at the target station.
While the invention has been described above primarily with respect to the method aspects of the invention, both systems and computer program products are also provided.
Accordingly, the present invention provides for management of application programs in a network environment from a central location while allowing for user preferences to be maintained independent of hardware location of the user along with centralized distribution of new and/or updated application programs. This provides for reduced costs and increased uniformity in deploying software in a network environment. It further provides an essentially hardware transparent ability for an individual user to interface to an on-demand server supported client station while maintaining the user""s personal preferences for each application program.